草庐IT

D3 笔记

全部标签

javascript - D3.js 中具有自动调整文本大小的可缩放圆圈打包

我正在尝试合并Mike的两个示例:ZoomableCirclePacking+AutomaticTextSizing.它在最初显示在顶层时有效。但是,如果放大到下一级,字体大小会不正确。我不确定我是否需要修改转换,或者修改计算字体大小的部分。这是我的代码笔:http://codepen.io/anon/pen/GJWqrLvarcircleFill=function(d){if(d['color']){returnd.color;}else{returnd.children?color(d.depth):'#FFF';}}varcalculateTextFontSize=functio

javascript - d3.select 不适用于特殊字符

我正在使用d3.js制作简单图表。假设在我计划放置我的d3svg容器的div之后但是当我使用d3.select('#my~div_chart')我无法选择特定的div,但是通过使用java脚本选择器,它可以工作。document.getElementById("my~div_chart");谁能告诉我为什么会这样。如果是特殊字符问题,请告诉我支持哪些特殊字符。 最佳答案 它就在那里,在specifications中:InCSS,identifiers(includingelementnames,classes,andIDsinsel

javascript - D3 - 从 v3 升级到 v4 时,forEach 不是函数

我正在尝试升级this可堆叠条形图到v4。除了一件事,一切正常。当我过滤一个类别时,条形图不会落到x轴的起点。我收到一条错误消息:state.selectAll(...).forEachisnotafunction我已经尝试了多种方法,但我无法弄清楚这一点。这是损坏的代码:functionplotSingle(d){class_keep=d.id.split("id").pop();idx=legendClassArray.indexOf(class_keep);//eraseallbutselectedbarsbysettingopacityto0d3.selectAll(".bar

javascript - D3 排序函数总是传递未定义的参数

使用D32.4.2,我创建了许多路径元素,如下所示:for(vari=0;i它们都按预期绘制到屏幕上。稍后,当用户进行一些输入时,我想将其中一个放在最前面,所以我有一个事件处理程序可以执行此操作:varpathToHighlight=selectPath(pathIndex);varpaths=d3.selectAll("."+PATH_CLASS);paths.sort(function(a,b){if(a===pathToHighlight){return-1;}elseif(b===pathToHighlight){return1;}else{return0;}});在Chrom

javascript - 禁用清除 D3.js 画笔

我想使用D3.js画笔来允许用户在轴上选择一系列值。默认情况下,在画笔外部单击会将其清除,因此不会选择任何范围。但是,我想调整此行为,以便在画笔外部单击不会改变画笔范围。实际上,应该没有办法清除画笔,应该始终选择一些范围。我相信我必须Hookbrushevent以某种方式禁用清除,但我真的不知道该怎么做。这是我正在谈论的那种接口(interface)的示例(Fiddle)。当您单击黑色条的左侧或右侧时,画笔被清除并且条消失。如何禁用此行为? 最佳答案 一旦用户在画笔元素上按下鼠标(即在“mousedown.brush”事件上),d3

javascript - 如何在 D3 Javascript 中绘制一个简单的力导向图

我正在学习本教程:>http://bl.ocks.org/mbostock/4062045用于在D3Javascript中可视化力定向图。上面的链接也有代码和JSON文件。我有两个问题。节点是如何链接的?以下是链接和节点及其位置的代码:force.on("tick",function(){link.attr("x1",function(d){returnd.source.x;}).attr("y1",function(d){returnd.source.y;}).attr("x2",function(d){returnd.target.x;}).attr("y2",function(d

javascript - 如何在 d3.js 中定义自定义时间间隔

我正在尝试使用d3.jstimeintervalsAPI编写一个区间循环函数.我想做的事情相当简单:编写一个函数,将时间舍入到最接近的6小时,并将其作为Date对象返回。例如:在10:30,d3.hour.my6HourRound(newDate)应该在今天12:00返回在12:30,d3.hour.my6HourRound(newDate)应该在今天12:00返回在23:50,d3.hour.my6HourRound(newDate)应该在明天00:00返回应该没有那么难,但是d3.jsapiAPI里面缺少使用demo。 最佳答案

javascript - D3.js 是否支持 native 移动应用程序?

我发现了一些关于支持D3以创建使用移动浏览器查看的移动应用程序的问题。我想知道D3是否支持创建原生移动应用程序(例如在Android设备上)?如果不支持native移动应用程序,使用D3在移动设备上实现类native应用程序的最佳方法是什么?否则,是否有替代D3的方法来在移动设备上创建原生交互式可视化应用程序?谢谢! 最佳答案 D3是一个旨在处理数据并将其呈现为htmlDOM的库——通过SVG、直接div或可能是Canvas。当然还需要有能够运行代码的JavaScript引擎。浏览器提供了所有这些东西;native应用程序没有开箱即

javascript - D3js 没有碰撞的分组散点图

我正在使用这个例子来制作散点图:https://www.d3-graph-gallery.com/graph/boxplot_show_individual_points.html现在这个例子使用抖动来随机化点的x位置以用于演示目的,但我的目标是以这种方式制作这些点,这样它们就不会发生碰撞并且在发生碰撞时位于同一行。我正在尝试做的(视觉上的)最好的例子是某种蜂群,其中数据像这个fiddle一样表示:https://jsfiddle.net/n444k759/4/第一个例子的片段://setthedimensionsandmarginsofthegraphvarmargin={top:1

javascript - D3.js 对象之间的动态连接器

我对JS和D3都很陌生,我用谷歌搜索了很多,但只找到了有点太高级的例子。我正在做一个简单的决策图实现,但我一直在尝试用一条线/路径连接2个节点。对象可以用鼠标四处移动,路径应始终更新以反射(reflect)对象的位置。这是我的基本知识来源:https://github.com/mbostock/d3/wiki/SVG-Shapes,但我不太明白如何用它做一些聪明的事情。这是我目前拥有的:http://jsbin.com/AXEFERo/5/edit不需要花哨的东西,只需要了解如何创建连接器并在拖动对象时让它们动态更新。非常感谢! 最佳答案